//
//  QHPlayer.h
//  QHAudioConverterMan
//
//  Created by Anakin chen on 2021/4/13.
//

#import <Foundation/Foundation.h>
#import <AudioToolbox/AudioToolbox.h>

@class QHPlayer;

@protocol QHPlayerDelegate <NSObject>

// 可直接拷贝 AudioBufferList 到 ioData，但得是在 48000HZ 时，对应的包为 1024 * mBytesPerPacket 才可以
- (AudioBufferList *_Nullable)renderPlay:(QHPlayer *_Nonnull)player;
// 针对不同的 采样率，44100 时，每次获取的包为 3974/3975，所以使用 data 控制每次给足够的数据，并且这里限制一个 NSData（即只拷贝一个声道的数据）
- (NSData *_Nullable)renderPlay2:(QHPlayer *_Nonnull)player size:(UInt32)size;

@end

NS_ASSUME_NONNULL_BEGIN

@interface QHPlayer : NSObject

@property (nonatomic, weak) id <QHPlayerDelegate> delegate;

- (void)play;
- (void)close;

@end

NS_ASSUME_NONNULL_END
